JSON Schema হল একটি ডেটা কাঠামো (data structure) যা JSON ডেটার বৈধতা পরীক্ষা (validation) করার জন্য ব্যবহৃত হয়। এটি JSON ডেটা ফাইল বা অবজেক্টের গঠন, টাইপ, এবং কনটেন্ট যাচাই করার একটি শক্তিশালী উপায়। JSON Schema ব্যবহার করে আপনি নিশ্চিত করতে পারেন যে একটি JSON ডেটা স্ট্রাকচার একটি নির্দিষ্ট কাঠামো অনুসরণ করছে কিনা এবং তা প্রত্যাশিত ডেটা টাইপ বা মান ধারণ করছে কিনা।
JSON Schema হল একটি ডিজাইন প্যাটার্ন যা JSON ডেটার কাঠামো এবং মান নির্ধারণ করে। এটি JSON ডেটার গঠন (structure), ডেটা টাইপ (data types), এবং শর্তাবলী (constraints) সম্পর্কে একটি নির্দিষ্ট নীতি বা নিয়ম তৈরি করে। JSON Schema কনফিগারেশন ফাইল হিসেবে JSON ডেটার প্রত্যাশিত বৈশিষ্ট্য বা ফর্ম্যাট সরবরাহ করে, এবং এটি JSON ডেটা সঠিকভাবে গঠন করা হয়েছে কিনা তা যাচাই করতে ব্যবহৃত হয়।
JSON ডেটার ভ্যালিডেশন করার মাধ্যমে আপনি নিশ্চিত করতে পারেন যে:
JSON Schema Validation সাধারণত দুটি ধাপে কাজ করে:
বর্তমানে org.json লাইব্রেরি সরাসরি JSON Schema Validation সাপোর্ট করে না। তবে, আপনি JSON Schema Validator নামে অন্য কিছু লাইব্রেরি ব্যবহার করতে পারেন, যেমন Everit JSON Schema বা FasterXML Jackson JSON Schema এর জন্য। এর মাধ্যমে আপনি JSON ডেটার জন্য স্কিমা তৈরি এবং যাচাই করতে পারবেন।
এখানে একটি উদাহরণ দেওয়া হয়েছে যেখানে Everit JSON Schema লাইব্রেরি ব্যবহার করে JSON ডেটা ভ্যালিডেশন করা হচ্ছে।
<dependency>
<groupId>org.everit.json</groupId>
<artifactId>everit-json-schema</artifactId>
<version>1.14.1</version>
</dependency>
এখানে একটি সাধারণ JSON Schema তৈরি করা হয়েছে, যা একটি অবজেক্টের মধ্যে name এবং age ফিল্ড থাকতে হবে এবং name স্ট্রিং এবং age একটি পূর্ণসংখ্যা (integer) হতে হবে।
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer"
}
},
"required": ["name", "age"]
}
এখন একটি JSON ডেটা তৈরি করা হবে যা যাচাই করা হবে:
{
"name": "John Doe",
"age": 30
}
import org.everit.json.schema.*;
import org.json.JSONObject;
import org.json.JSONTokener;
import java.io.InputStream;
public class JSONSchemaValidationExample {
public static void main(String[] args) {
try {
// JSON Schema ফাইল লোড করা
InputStream schemaStream = JSONSchemaValidationExample.class.getResourceAsStream("/schema.json");
JSONObject jsonSchema = new JSONObject(new JSONTokener(schemaStream));
// JSON Schema তৈরি করা
Schema schema = SchemaLoader.load(jsonSchema);
// JSON ডেটা লোড করা
String jsonData = "{\"name\":\"John Doe\",\"age\":30}";
JSONObject jsonObject = new JSONObject(jsonData);
// JSON ডেটা যাচাই করা
schema.validate(jsonObject); // কোনো JSONException থ্রো হবে না, মানে JSON ডেটা বৈধ
System.out.println("JSON is valid against the schema.");
} catch (ValidationException e) {
// JSON ডেটা স্কিমার সাথে মেলেনি
System.out.println("JSON is invalid: " + e.getMessage());
}
}
}
JSON is valid against the schema.
এটি দেখায় যে JSON ডেটাটি স্কিমার সাথে সঠিকভাবে মিলেছে।
JSON Schema Validation JSON ডেটার বৈধতা যাচাই করার একটি শক্তিশালী উপায়। এটি নিশ্চিত করে যে ডেটা সঠিক কাঠামো এবং টাইপ অনুসরণ করছে। org.json লাইব্রেরি সরাসরি JSON Schema Validation সাপোর্ট না করলেও, আপনি অন্যান্য লাইব্রেরি যেমন Everit JSON Schema ব্যবহার করে JSON ডেটার স্কিমা ভ্যালিডেশন সহজেই সম্পাদন করতে পারেন। JSON Schema Validation ডেটার সঠিকতা এবং গুণমান নিশ্চিত করতে সাহায্য করে, যা ওয়েব অ্যাপ্লিকেশন এবং API ডেভেলপমেন্টে খুবই গুরুত্বপূর্ণ।
JSON Schema হল একটি স্ট্রাকচারাল ডেসক্রিপশন ফরম্যাট যা JSON ডেটার গঠন এবং বৈধতা নির্ধারণ করে। এটি JSON ডেটার স্ট্রাকচার, ডেটা টাইপ, মানের সীমা, এবং অন্যান্য বৈশিষ্ট্য নির্ধারণ করতে ব্যবহৃত হয়। JSON Schema ব্যবহার করে আপনি একটি নির্দিষ্ট JSON ডেটা স্ট্রাকচারের সঠিকতা যাচাই করতে পারেন, যা ডেটার সঠিকতা এবং নির্ভুলতা নিশ্চিত করে।
JSON Schema একটি JSON অবজেক্ট যা JSON ডেটার গঠন এবং বৈধতা সংজ্ঞায়িত করে। এটি নির্দিষ্ট করে দেয় যে, একটি JSON ডকুমেন্টে কোন কী থাকতে হবে, কিভাবে সেগুলি থাকতে হবে (যেমন ডেটা টাইপ, মানের সীমা ইত্যাদি), এবং ডেটার বিভিন্ন প্রপার্টি কেমন হতে হবে।
JSON Schema এর মূল উদ্দেশ্য হলো:
JSON Schema সাধারণত নিম্নলিখিত উপাদানসমূহ নিয়ে গঠিত:
ধরা যাক, একটি JSON অবজেক্টের মধ্যে "name", "age", এবং "email" নামক ফিল্ড থাকবে। আমরা এই JSON অবজেক্টের জন্য একটি JSON Schema তৈরি করতে পারি:
{
"name": "John Doe",
"age": 30,
"email": "john.doe@example.com"
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer",
"minimum": 18
},
"email": {
"type": "string",
"format": "email"
}
},
"required": ["name", "age", "email"]
}
এখানে:
object
দেওয়া হয়েছে।"name"
, "age"
, এবং "email"
এখানে দেওয়া হয়েছে।"age"
কীগুলির জন্য সর্বনিম্ন মান কি হবে (এখানে 18)।"email"
এখানে "email"
ফরম্যাটে নিশ্চিত করা হয়েছে।ডেটার সঠিকতা যাচাই করা: JSON Schema ব্যবহার করে JSON ডেটার সঠিকতা এবং বৈধতা যাচাই করা সম্ভব। এটি নিশ্চিত করে যে আপনার ডেটা কাঠামো এবং প্রপার্টিগুলি ঠিকভাবে ফর্ম্যাট করা আছে এবং সঠিক মান ধারণ করছে।
উদাহরণস্বরূপ, যদি একটি ডেটা ফিল্ডের জন্য নির্দিষ্ট ডেটা টাইপ (যেমন string, integer) বা সীমা (যেমন minimum: 18
) দেওয়া থাকে, তবে JSON Schema সেই ডেটার বৈধতা যাচাই করতে সহায়তা করে।
JSON ডেটা JSON Schema এর সাথে যাচাই করতে আপনি বিভিন্ন লাইব্রেরি ব্যবহার করতে পারেন। Java-তে org.everit.json.schema
বা json-schema-validator
লাইব্রেরি JSON স্কিমা বৈধতা যাচাই করতে ব্যবহৃত হতে পারে।
JSON Schema JSON ডেটার স্ট্রাকচার, বৈধতা এবং অন্যান্য বৈশিষ্ট্য নির্ধারণের জন্য একটি গুরুত্বপূর্ণ টুল। এটি ডেটার সঠিকতা যাচাই করতে সাহায্য করে, ডেটার গঠন এবং ডেভেলপমেন্ট প্রক্রিয়াকে আরও সহজ করে এবং ডেটার ইন্টিগ্রেশন এবং নিরাপত্তা নিশ্চিত করে। JSON Schema ব্যবহার করে আপনি ডেটার সাথে কাজ করার সময় ভুল এবং অপ্রত্যাশিত ফলাফল থেকে রক্ষা পেতে পারেন।
JSON ডেটা ভ্যালিডেশন একটি গুরুত্বপূর্ণ প্রক্রিয়া, যা JSON ডেটার সঠিকতা এবং কাঠামো যাচাই করার জন্য ব্যবহৃত হয়। যখন আপনি JSON ডেটা পার্স বা প্রসেস করেন, তখন নিশ্চিত হওয়া প্রয়োজন যে ডেটা সঠিক ফরম্যাটে রয়েছে এবং প্রত্যাশিত কাঠামো অনুসরণ করছে। Org.JSON লাইব্রেরি JSON ডেটা ভ্যালিডেশনের জন্য কিছু সহজ এবং কার্যকরী উপায় প্রদান করে।
এই টিউটোরিয়ালে, Org.JSON লাইব্রেরি ব্যবহার করে JSON ডেটার ভ্যালিডেশন করার বিভিন্ন পদ্ধতি দেখানো হবে।
প্রথম ধাপে আমরা যাচাই করব যে একটি JSON অবজেক্ট সঠিকভাবে তৈরি হয়েছে কিনা, অর্থাৎ JSON স্ট্রিংটি সঠিকভাবে পার্স হয়েছে কিনা। Org.JSON লাইব্রেরি আপনাকে JSONException দিতে পারে যদি JSON স্ট্রিংটি অবৈধ হয়।
import org.json.JSONException;
import org.json.JSONObject;
public class JSONValidationExample {
public static void main(String[] args) {
// অবৈধ JSON স্ট্রিং (অতিরিক্ত কমা)
String jsonString = "{\"name\":\"Alice\",\"age\":25,}";
try {
// JSON স্ট্রিং পার্স করা
JSONObject jsonObject = new JSONObject(jsonString);
System.out.println("Valid JSON: " + jsonObject);
} catch (JSONException e) {
// JSONException হ্যান্ডলিং
System.out.println("Invalid JSON format: " + e.getMessage());
}
}
}
Invalid JSON format: A JSONObject text must begin with '{' at 1 [character 2 line 1]
এখানে, অবৈধ JSON স্ট্রিংয়ের জন্য JSONException হ্যান্ডল করা হয়েছে এবং ত্রুটির বার্তা প্রদর্শিত হয়েছে।
JSON অবজেক্টের মধ্যে নির্দিষ্ট কী রয়েছে কিনা তা যাচাই করা একটি সাধারণ ভ্যালিডেশন প্রক্রিয়া। Org.JSON লাইব্রেরি has() মেথড ব্যবহার করে JSON অবজেক্টে কীগুলোর উপস্থিতি পরীক্ষা করতে সাহায্য করে।
import org.json.JSONObject;
public class JSONKeyValidationExample {
public static void main(String[] args) {
// JSON স্ট্রিং
String jsonString = "{\"name\":\"Bob\",\"age\":30}";
// JSON স্ট্রিং পার্স করা
JSONObject jsonObject = new JSONObject(jsonString);
// কী উপস্থিতি চেক করা
if (jsonObject.has("name")) {
System.out.println("Name: " + jsonObject.getString("name"));
} else {
System.out.println("Key 'name' is missing.");
}
if (jsonObject.has("address")) {
System.out.println("Address: " + jsonObject.getString("address"));
} else {
System.out.println("Key 'address' is missing.");
}
}
}
"Key 'name' is missing."
বার্তা দেখানো হবে।Name: Bob
Key 'address' is missing.
এখানে, has()
মেথড ব্যবহার করে address
কী অনুপস্থিত হওয়া সত্ত্বেও ত্রুটি ফেলে না, বরং একটি কাস্টম বার্তা দেখায়।
JSON অবজেক্টের একটি কীর মানের টাইপ যাচাই করা প্রয়োজন হতে পারে, যেমন যদি কোনো কী integer, string, boolean ইত্যাদি টাইপে থাকে। Org.JSON লাইব্রেরি getType()
মেথড সরবরাহ করে, যা নির্দিষ্ট কী-এর ডেটা টাইপ পরীক্ষা করতে সহায়ক।
import org.json.JSONObject;
public class JSONDataTypeValidationExample {
public static void main(String[] args) {
// JSON স্ট্রিং
String jsonString = "{\"name\":\"Alice\",\"age\":25,\"isEmployed\":true}";
// JSON স্ট্রিং পার্স করা
JSONObject jsonObject = new JSONObject(jsonString);
// ডেটা টাইপ যাচাই করা
if (jsonObject.get("age") instanceof Integer) {
System.out.println("Age is of type Integer");
} else {
System.out.println("Age is not of type Integer");
}
if (jsonObject.get("name") instanceof String) {
System.out.println("Name is of type String");
} else {
System.out.println("Name is not of type String");
}
if (jsonObject.get("isEmployed") instanceof Boolean) {
System.out.println("Employment status is of type Boolean");
} else {
System.out.println("Employment status is not of type Boolean");
}
}
}
Age is of type Integer
Name is of type String
Employment status is of type Boolean
এখানে, ডেটা টাইপ যাচাইয়ের মাধ্যমে নিশ্চিত হওয়া গেছে যে প্রতিটি কী সঠিক টাইপের।
JSON অ্যারে ভ্যালিডেশনের সময়, অ্যারের মধ্যে প্রতিটি অবজেক্ট বা ভ্যালু নির্দিষ্ট কাঠামোর (structure) অনুসরণ করছে কিনা তা যাচাই করা গুরুত্বপূর্ণ। উদাহরণস্বরূপ, অ্যারের মধ্যে থাকা JSON অবজেক্টের কীগুলোর উপস্থিতি এবং ডেটা টাইপ পরীক্ষা করা।
import org.json.JSONArray;
import org.json.JSONObject;
public class JSONArrayValidationExample {
public static void main(String[] args) {
// JSON অ্যারে স্ট্রিং
String jsonArrayString = "[{\"name\":\"John\",\"age\":28},{\"name\":\"Alice\",\"age\":25}]";
// JSON অ্যারে পার্স করা
JSONArray jsonArray = new JSONArray(jsonArrayString);
// অ্যারের প্রতিটি অবজেক্টের জন্য কীগুলোর উপস্থিতি যাচাই
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
if (jsonObject.has("name") && jsonObject.has("age")) {
System.out.println("Valid object at index " + i + ": " + jsonObject);
} else {
System.out.println("Invalid object at index " + i);
}
}
}
}
Valid object at index 0: {"name":"John","age":28}
Valid object at index 1: {"name":"Alice","age":25}
এখানে, JSON অ্যারের প্রতিটি অবজেক্টে কীগুলোর উপস্থিতি যাচাই করা হয়েছে এবং সেগুলোর ভ্যালিডেশন করা হয়েছে।
Org.JSON লাইব্রেরি ব্যবহার করে JSON ডেটা ভ্যালিডেশন করা একটি গুরুত্বপূর্ণ প্রক্রিয়া, যা JSON ডেটার কাঠামো এবং সঠিকতা যাচাই করার জন্য অপরিহার্য। এই টিউটোরিয়ালে JSON স্ট্রিং পার্সিং, কী উপস্থিতি যাচাই, ডেটা টাইপ যাচাই, এবং JSON অ্যারে ভ্যালিডেশন সম্পর্কে বিস্তারিত আলোচনা করা হয়েছে। JSONException হ্যান্ডলিংয়ের মাধ্যমে অবৈধ JSON স্ট্রিংয়ের ক্ষেত্রে নিরাপত্তা নিশ্চিত করা যায়, এবং has() মেথড এবং instanceof এর মাধ্যমে কী-এর উপস্থিতি এবং ডেটা টাইপ যাচাই করা যায়।
JSON Schema
হল একটি কাঠামো যা JSON ডেটার বৈধতা পরীক্ষা করতে ব্যবহৃত হয়। এটি JSON ডেটা স্ট্রাকচার এবং তার মানের জন্য একটি গাইডলাইন প্রদান করে, যেমন কী ধরনের ডেটা কিভাবে আছেতো, কোন ক্ষেত্রগুলো আবশ্যক, মানের ধরণ ইত্যাদি। JSON Schema Validation প্রক্রিয়া JSON ডেটার মান যাচাই করতে সাহায্য করে, যাতে ডেটা স্ট্রাকচার সঠিক এবং প্রত্যাশিত হয়।
Org.JSON লাইব্রেরি, নিজে সরাসরি JSON Schema Validation সাপোর্ট না করলেও, এটি সহজেই Java তে JSON Schema Validation করার জন্য অন্যান্য লাইব্রেরির সাথে কাজ করতে পারে, যেমন org.everit.json.schema
। এই লাইব্রেরিটি JSON Schema এবং JSON ডেটা যাচাই করার জন্য একটি সাধারণ উপায় প্রদান করে।
JSON Schema মূলত JSON ডেটা স্ট্রাকচারের ধরন, কাঠামো এবং আঙ্গিকের সাথে সম্পর্কিত বিধিনিষেধ তৈরি করে। JSON ডেটা Schema এর নিয়ম অনুসারে না হলে, এটি বৈধ হবে না।
JSON Schema একটি স্ট্রিং আকারে বা JSON অবজেক্ট হিসেবে লেখা হয়, যেখানে ডেটা স্ট্রাকচারের ধরন ও নিয়মাবলী উল্লেখ করা হয়।
এখানে আমরা একটি উদাহরণ দেখব যেখানে org.everit.json.schema
লাইব্রেরি ব্যবহার করে JSON Schema Validation করা হচ্ছে।
ধরা যাক আমাদের একটি JSON ডেটা রয়েছে, যা ব্যবহারকারীর তথ্য ধারণ করে। আমরা এর জন্য একটি JSON Schema তৈরি করব যা ডেটার ধরন এবং কাঠামো যাচাই করবে।
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer",
"minimum": 18
},
"email": {
"type": "string",
"format": "email"
}
},
"required": ["name", "age", "email"]
}
এখানে:
name
, age
, এবং email
প্রপার্টি আবশ্যক।age
এর জন্য ন্যূনতম ১৮ বছর হতে হবে।email
ফরম্যাটটি একটি বৈধ ইমেইল ঠিকানা হতে হবে।{
"name": "John Doe",
"age": 25,
"email": "john.doe@example.com"
}
এটি একটি সঠিক JSON ডেটা যেখানে name
, age
, এবং email
ফিল্ড রয়েছে, এবং এর মান JSON Schema এর নিয়ম অনুযায়ী সঠিক।
এখন আমরা Java কোডে org.everit.json.schema
লাইব্রেরি ব্যবহার করে JSON Schema Validation প্রক্রিয়া সম্পন্ন করব। প্রথমে আপনাকে org.everit.json.schema
এবং org.json
লাইব্রেরি মাভেন (Maven) বা গ্রেডল (Gradle) থেকে ইমপোর্ট করতে হবে।
<dependency>
<groupId>org.everit.json</groupId>
<artifactId>org.everit.json.schema</artifactId>
<version>1.14.0</version>
</dependency>
import org.json.JSONObject;
import org.everit.json.schema.Schema;
import org.everit.json.schema.loader.SchemaLoader;
import org.everit.json.schema.ValidationException;
import java.io.InputStream;
public class JSONSchemaValidationExample {
public static void main(String[] args) {
// JSON ডেটা
String jsonData = "{ \"name\": \"John Doe\", \"age\": 25, \"email\": \"john.doe@example.com\" }";
JSONObject jsonObject = new JSONObject(jsonData);
// JSON Schema লোড করা
InputStream schemaStream = JSONSchemaValidationExample.class.getResourceAsStream("/user_schema.json");
JSONObject jsonSchema = new JSONObject(new JSONTokener(schemaStream));
// Schema তৈরি
Schema schema = SchemaLoader.load(jsonSchema);
try {
// JSON ডেটা স্কিমার সাথে যাচাই করা
schema.validate(jsonObject);
System.out.println("JSON ডেটা বৈধ!");
} catch (ValidationException e) {
// যদি JSON ডেটা অবৈধ হয়
System.out.println("ভুল: " + e.getMessage());
}
}
}
JSONObject
আকারে তৈরি করা হয়।JSONObject
আকারে ইনপুট দেওয়া হয়।SchemaLoader.load()
মেথডের মাধ্যমে JSON Schema লোড করা হয়।schema.validate(jsonObject)
মেথডের মাধ্যমে JSON ডেটা স্কিমার সাথে যাচাই করা হয়। যদি ডেটা বৈধ হয়, তবে "JSON ডেটা বৈধ!" মেসেজ আসে, আর যদি কোনো ভুল থাকে তবে তা ধরিয়ে দেওয়া হয়।JSON ডেটা বৈধ!
JSON Schema Validation JSON ডেটার কাঠামো এবং ভ্যালিডিটি পরীক্ষা করতে একটি শক্তিশালী পদ্ধতি। org.everit.json.schema
লাইব্রেরি Java তে JSON Schema ব্যবহার করে সহজে JSON ডেটার বৈধতা যাচাই করতে সহায়তা করে। এই প্রক্রিয়াটি নিশ্চিত করে যে, JSON ডেটা নির্দিষ্ট কাঠামো এবং নিয়ম মেনে তৈরি হয়েছে, যা সার্ভার বা অন্যান্য সিস্টেমে ব্যবহারের জন্য উপযুক্ত।
Read more